﻿using sipfe.model.dataAccess;
using sipfe.model.persona;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace sipfe.service.persona
{
    public class PersonaService
    {
        /*AGREGAR TABLAS*/
        
        public string[] AddNuevaPersonaPoPupService(SIPMaePersona sipMaePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.AgregarTablaInpDAO(sipMaePersona);
        }

        public List<SIPMaePersona> ListaDatosPersonasService(int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.ListaDatosPersonasDAO(n_IdePersona);

        }

        public int CheckEstodoCivilExisteService(string n_IdePersona, int idEstadoCivil)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.CheckEstodoCivilExisteDAO(Int32.Parse(n_IdePersona), idEstadoCivil);
        }

        public void UpdateEstodoCivilService(int n_IdePersona, int idEstadoCivil, int n_IdeUsuario)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            personaDAO.UpdateEstodoCivilDAO(n_IdePersona, idEstadoCivil, n_IdeUsuario);
        }       

        public void AgregarTelefonoService(int n_IdePersona, int n_IdeUsuario, string v_Prefijo, string v_NumTelefono)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            personaDAO.AgregarTelefonoDAO(n_IdePersona, n_IdeUsuario, v_Prefijo, v_NumTelefono);
        }

        public void AgregarCorreoElectronicoService(int n_IdePersona, int n_IdeUsuario, string v_Correo)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            personaDAO.AgregarCorreoElectronicoDAO(n_IdePersona, n_IdeUsuario, v_Correo);
        }

        public void AgregarDireccionInvService(SIPDetDireccion direccion)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            personaDAO.AgregarDireccionInvDAO(direccion);
        }

        public void RegistraInfoAcademicaInvService(int n_IdeNivelEstudio, int n_IdeTipoInst, int n_IdeInstitucion, string d_FecIniAct,
                                                    string d_FecFinAct, string n_Promedio, int n_IdeTipoEstudio, int n_IdeGrado,
                                                    int n_IdeUsuario, int n_IdePersona, string cadenaNotas, string n_IdeCarrera,
                                                        string n_AnnioCur, string n_IdeEscala, string n_IdeDesemp,
                                                        string n_IdeCiclo, string v_Campus, string n_CodigoUni, string n_CostoMensual, 
                                                    string n_CostoMatricula)
        {
            PersonaDAO personaDAO = new PersonaDAO();
          personaDAO.RegistraInfoAcademicaInvDAO(n_IdeNivelEstudio, n_IdeTipoInst, n_IdeInstitucion, d_FecIniAct, d_FecFinAct,
                                                    n_Promedio, n_IdeTipoEstudio, n_IdeGrado, n_IdeUsuario, n_IdePersona, cadenaNotas,
                                                    n_IdeCarrera, n_AnnioCur, n_IdeEscala, n_IdeDesemp, n_IdeCiclo, v_Campus, n_CodigoUni,
                                                    n_CostoMensual, n_CostoMatricula);
        }
        
        public List<SIPMaePersona> RegistraInfoAIdiomaInvService(int nIdeHabla, int nIdeLee, int n_IdeEscribe, int n_IdeNivelIdioma, int n_CertiIdioma,
                                                                int n_IdeUsuario, int n_IdePersona, int n_Idioma)
        {
                     
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraInfoAIdiomaInvDAO(nIdeHabla, nIdeLee, n_IdeEscribe, n_IdeNivelIdioma, n_CertiIdioma, n_IdeUsuario, n_IdePersona, n_Idioma);
        }


        public List<SIPMaePersona> RegistraInfoOtrosEstudiosInvService(int n_OtroEstudio, int n_IdeInstitucionOtro, int n_AnioOtro, int n_TipoOtroEstudio, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraInfoOtrosEstudiosInvDAO(n_OtroEstudio, n_IdeInstitucionOtro, n_AnioOtro, n_TipoOtroEstudio, n_IdeUsuario, n_IdePersona);            
        }

        public List<SIPMaePersona> RegistraInfoReconocimientoService(int n_IdeRecono, int n_IdeInstitutoRecono, int n_AnioRecono, int n_TipoRecono, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraInfoReconocimientoDAO(n_IdeRecono, n_IdeInstitutoRecono, n_AnioRecono, n_TipoRecono, n_IdeUsuario, n_IdePersona);   
        }

        public List<SIPMaePersona> RegistraInfoTrabajoSocialInvService(int n_IdeTipoTrabajo, int n_AnioTrabajo, string v_DescTrabajo, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraInfoTrabajoSocialInvDAO(n_IdeTipoTrabajo, n_AnioTrabajo, v_DescTrabajo, n_IdeUsuario, n_IdePersona);
        }

        public int AddNuevaIntitucionFinalService(int nIdeCodPaisDoc, int nIdeTipoDocum, string NumDocInstitucion, string vRazonSocial, int n_IdeUsuario)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.AddNuevaIntitucionFinalDAO(nIdeCodPaisDoc, nIdeTipoDocum, NumDocInstitucion, vRazonSocial, n_IdeUsuario);            
        }

        public List<SIPMaePersona> RegistraInfoSocioEconomicaInvService(int n_NummiembrosFam, int n_JefeFamilia, int n_NumDependientes, int n_IdeProfesion, 
                                                        int n_IdeTipoVivienda, decimal n_ValorComercial, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraInfoSocioEconomicaInvDAO(n_NummiembrosFam, n_JefeFamilia, n_NumDependientes, n_IdeProfesion, 
                                                                n_IdeTipoVivienda, n_ValorComercial, n_IdeUsuario, n_IdePersona); 
        }

        public List<SIPMaePersona> RegistrarRefFamiliarSocioInvService(int n_IdePersonaSocio, int n_IdeParentesco, int n_IdeTrabaja, int n_IdeViveContigo, 
                                                                        int n_IdeCie10, decimal n_Remuneracion, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistrarRefFamiliarSocioInvDAO(n_IdePersonaSocio, n_IdeParentesco, n_IdeTrabaja, n_IdeViveContigo, n_IdeCie10, 
                                                                n_Remuneracion, n_IdeUsuario, n_IdePersona);
        }

        public List<SIPMaePersona> RegistraDatosLaboralesInvService(int n_IdeEmpresaLabora, int n_IdeEstadoLaboral, int n_IdeCargoLaboral, 
                                                                    decimal n_RemuneNeta, string d_FecIngresoLabo, int n_IdeCondicionLaboral, 
                                                                    int n_IdeUsuario, int n_IdePersona, string v_CodigoTrab, string n_IdeDpto,
                                                                    string n_IdeProv, string n_IdeDistrito, string n_IdeTipoTrab, string d_FecFinLabo,
                                                                    string n_rph, string n_IdeTipoSede, string v_NombreSede)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraDatosLaboralesInvDAO(n_IdeEmpresaLabora, n_IdeEstadoLaboral, n_IdeCargoLaboral, n_RemuneNeta, 
                                                            d_FecIngresoLabo, n_IdeCondicionLaboral, n_IdeUsuario, n_IdePersona, v_CodigoTrab,
                                                            n_IdeDpto, n_IdeProv, n_IdeDistrito, n_IdeTipoTrab, d_FecFinLabo, n_rph, n_IdeTipoSede,
                                                            v_NombreSede);
        }

        public List<SIPMaePersona> RegistraOtrosIngresosInvService(int n_IdeOtroIngreso, int n_MontoOtroIngreso, int n_IdeUsuario, int n_IdePersona, int tipo)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraOtrosIngresosInvDAO(n_IdeOtroIngreso, n_MontoOtroIngreso, n_IdeUsuario, n_IdePersona, tipo);
        }

        public List<SIPMaePersona> RegistraDatosBeneficioInvService(int n_IdeIntitutoBene, int n_IdeTipoBene, int n_AnioBene, int n_IdeConceptoBene, 
                                                                    decimal n_CostoBene, decimal n_PorceBeca, decimal n_PorceCredito, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraDatosBeneficioInvServiceDAO(n_IdeIntitutoBene, n_IdeTipoBene, n_AnioBene, n_IdeConceptoBene, n_CostoBene, n_PorceBeca, n_PorceCredito, n_IdeUsuario, n_IdePersona);
        }

        public List<SIPMaePersona> UpdateEstodoCivilManteService(int n_IdePersona, int idEstadoCivil, int n_IdeUsuario)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.UpdateEstodoCivilManteDAO(n_IdePersona, idEstadoCivil, n_IdeUsuario);
        }

        public List<SIPMaePersona> AgregaTelefonoManteService(int n_IdePersona, string v_Prefijo, string v_NumTelefono, int n_IdeUsuario)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.AgregaTelefonoManteDAO(n_IdePersona, n_IdeUsuario, v_Prefijo, v_NumTelefono);
        }

        public List<SIPMaePersona> AgregaCorreoElectronicoManteService(int n_IdePersona, string v_Correo, int n_IdeUsuario)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.AgregaCorreoElectronicoManteDAO(n_IdePersona, n_IdeUsuario, v_Correo);
        }

        public List<SIPMaePersona> AgregarDireccionPersonaManteService(SIPDetDireccion direccion)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.AgregarDireccionPersonaManteDAO(direccion);
        }

        public List<SIPMaePersona> ListaPersonaManteService(string v_NombresPersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.ListaPersonaManteManteDAO(v_NombresPersona);
        }

        public int CheckExisteDocumentoPersonaManteService(int n_IdeCodPaisDoc, int n_IdeTipoDocum, string v_numDocum, string sw,
                                                            string n_IdePersona, string tipoPersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.CheckExisteDocumentoPersonaManteDAO(n_IdeCodPaisDoc, n_IdeTipoDocum, v_numDocum, sw, n_IdePersona, tipoPersona);
        }

        public string[] UpdateDatosPersonaInpService(SIPMaePersona sipMaePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.UpdateDatosPersonaInpDAO(sipMaePersona);
        }

        public SIPMaePersona personaByIdService(int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.personaByIdDAO(n_IdePersona);
        }

        public List<SIPDetBoletaNota> ListaNotasPersonaService(int id_Centro)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.ListaNotasPersonaDAO(id_Centro);
        }

        public SIPMaePersona RegistraPatrimonioManteService(int n_IdeTipoBien, string n_IdeSubTipo, string n_AnioBien, 
                                                            string d_FecReside, decimal n_Valor, int n_IdeUsuario, int n_IdePersona)
        {
            PersonaDAO personaDAO = new PersonaDAO();
            return personaDAO.RegistraPatrimonioManteDAO(n_IdeTipoBien, n_IdeSubTipo, n_AnioBien, d_FecReside, n_Valor, n_IdeUsuario, n_IdePersona);
        }

        


    }
}
